package com.example.hutool;

import cn.hutool.core.util.StrUtil;

import java.util.List;

/**
 * @author 江黎
 * @since 2022-11-19
 */
public class 字符串工具类 {

    public static void main(String[] args) {
        String str = "www.baidu.com";
        /*截取字符串*/
        // 1、subBefore：获取字符串左边的字符,参数isLastSeparator：是否从右边开始数（倒着数）
        String subBefore = StrUtil.subBefore(str, ".", false); // www
        String subBefore1 = StrUtil.subBefore(str, ".", true); // www.baidu
        System.out.println(subBefore);

        // 2、subAfter：获取字符串右边的字符
        String subAfter = StrUtil.subAfter(str, ".", false); // baidu.com
        String subAfter1 = StrUtil.subAfter(str, ".", true); // com
        System.out.println(subAfter);

        // 3、subBetween：获取字符串中间的字符(从左数)
        String subBetween = StrUtil.subBetween(str, ".", "."); // baidu
        System.out.println(subBetween);

        str = "111abcd222";
        // 4、subPre：截取字符串前面的n个字符，字符串长度不够则返回原字符串
        String subPre = StrUtil.subPre(str, 3); // 111
        System.out.println(subPre);

        // 5、subSufByLength：截取字符串后面的n个字符，字符串长度不够则返回原字符串
        String subSufByLength = StrUtil.subSufByLength(str, 3); // 222
        System.out.println(subSufByLength);

        // 6、subWithLength：截取字符串中间的n个字符，字符串长度不够则截取到字符串末尾
        String subWithLength = StrUtil.subWithLength(str, 3, 4); // abcd
        System.out.println(subWithLength);

        // 7、空字符串判断
        System.out.println(StrUtil.isNotBlank(null)); // false
        System.out.println(StrUtil.isNotBlank(""));   // false
        System.out.println(StrUtil.isNotBlank(" "));  // false

        // 8、判断字符串是否为数字
        System.out.println(StrUtil.isNumeric("99")); // true

        // 8、判断字符串是否全为空白字符
        System.out.println(StrUtil.isAllBlank("   ")); // true


        str = "www.baidu.com";
        /*字符串前后缀的添加和删除*/
        // 9、addPrefixIfNot：如果不以某个字符开头则在开头增加此字符
        System.out.println(StrUtil.addPrefixIfNot(str, "www")); // www.baidu.com
        System.out.println(StrUtil.addPrefixIfNot(str, "http://")); // http://www.baidu.com

        // 10、addSuffixIfNot：如果不以某个字符结尾则在结尾追加此字符
        System.out.println(StrUtil.addSuffixIfNot(str, "com")); // www.baidu.com
        System.out.println(StrUtil.addSuffixIfNot(str, ".cn")); // www.baidu.com.cn

        // 11、removePrefix：如果以某个字符开头则在开头去掉此字符
        System.out.println(StrUtil.removePrefix(str, "www")); // .baidu.com
        System.out.println(StrUtil.removePrefix(str, "http://")); // www.baidu.com

        // 12、removeSuffix：如果以某个字符结尾则在结尾去掉此字符
        System.out.println(StrUtil.removeSuffix(str, "com")); // www.baidu.
        System.out.println(StrUtil.removeSuffix(str, ".cn")); // www.baidu.com

        // 13、隐藏字符串中间的某些字符
        str = "13657178899";
        System.out.println(StrUtil.hide(str, 3, 8)); // 136*****899

        // 14、切分字符串，去除切分后每个元素两边的空白符，去除空白项
        // 希望的字符串是 1,2,3,4,5,6,7,8,9   用户实际输入的是 1 ,2 ,3,4,,5,,6,,,7,8 ,9
        List<String> list = StrUtil.splitTrim("1 ,2 ,3,4,,5,,6,,,7,8 ,9", ",");
        List<String> list1 = StrUtil.split("1 ,2 ,3,4,,5,,6,,,7,8 ,9", ",", true, false);
        System.out.println(list.toString());


    }

}
